# uncompyle6 version 3.2.3
# Python bytecode 3.6 (3379)
# Decompiled from: Python 3.6.8 |Anaconda custom (64-bit)| (default, Feb 21 2019, 18:30:04) [MSC v.1916 64 bit (AMD64)]
# Embedded file name: site-packages\chardet\jpcntx.py
jp2CharContext = (
    (
        0,
        0,
        0,
        2,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
    ),
    (
        2,
        4,
        0,
        4,
        0,
        3,
        0,
        4,
        0,
        3,
        4,
        4,
        4,
        2,
        4,
        3,
        3,
        4,
        3,
        2,
        3,
        3,
        4,
        2,
        3,
        3,
        3,
        2,
        4,
        1,
        4,
        3,
        3,
        1,
        5,
        4,
        3,
        4,
        3,
        4,
        3,
        5,
        3,
        0,
        3,
        5,
        4,
        2,
        0,
        3,
        1,
        0,
        3,
        3,
        0,
        3,
        3,
        0,
        1,
        1,
        0,
        4,
        3,
        0,
        3,
        3,
        0,
        4,
        0,
        2,
        0,
        3,
        5,
        5,
        5,
        5,
        4,
        0,
        4,
        1,
        0,
        3,
        4,
    ),
    (
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
    ),
    (
        0,
        4,
        0,
        5,
        0,
        5,
        0,
        4,
        0,
        4,
        5,
        4,
        4,
        3,
        5,
        3,
        5,
        1,
        5,
        3,
        4,
        3,
        4,
        4,
        3,
        4,
        3,
        3,
        4,
        3,
        5,
        4,
        4,
        3,
        5,
        5,
        3,
        5,
        5,
        5,
        3,
        5,
        5,
        3,
        4,
        5,
        5,
        3,
        1,
        3,
        2,
        0,
        3,
        4,
        0,
        4,
        2,
        0,
        4,
        2,
        1,
        5,
        3,
        2,
        3,
        5,
        0,
        4,
        0,
        2,
        0,
        5,
        4,
        4,
        5,
        4,
        5,
        0,
        4,
        0,
        0,
        4,
        4,
    ),
    (
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
    ),
    (
        0,
        3,
        0,
        4,
        0,
        3,
        0,
        3,
        0,
        4,
        5,
        4,
        3,
        3,
        3,
        3,
        4,
        3,
        5,
        4,
        4,
        3,
        5,
        4,
        4,
        3,
        4,
        3,
        4,
        4,
        4,
        4,
        5,
        3,
        4,
        4,
        3,
        4,
        5,
        5,
        4,
        5,
        5,
        1,
        4,
        5,
        4,
        3,
        0,
        3,
        3,
        1,
        3,
        3,
        0,
        4,
        4,
        0,
        3,
        3,
        1,
        5,
        3,
        3,
        3,
        5,
        0,
        4,
        0,
        3,
        0,
        4,
        4,
        3,
        4,
        3,
        3,
        0,
        4,
        1,
        1,
        3,
        4,
    ),
    (
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
    ),
    (
        0,
        4,
        0,
        3,
        0,
        3,
        0,
        4,
        0,
        3,
        4,
        4,
        3,
        2,
        2,
        1,
        2,
        1,
        3,
        1,
        3,
        3,
        3,
        3,
        3,
        4,
        3,
        1,
        3,
        3,
        5,
        3,
        3,
        0,
        4,
        3,
        0,
        5,
        4,
        3,
        3,
        5,
        4,
        4,
        3,
        4,
        4,
        5,
        0,
        1,
        2,
        0,
        1,
        2,
        0,
        2,
        2,
        0,
        1,
        0,
        0,
        5,
        2,
        2,
        1,
        4,
        0,
        3,
        0,
        1,
        0,
        4,
        4,
        3,
        5,
        4,
        3,
        0,
        2,
        1,
        0,
        4,
        3,
    ),
    (
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
    ),
    (
        0,
        3,
        0,
        5,
        0,
        4,
        0,
        2,
        1,
        4,
        4,
        2,
        4,
        1,
        4,
        2,
        4,
        2,
        4,
        3,
        3,
        3,
        4,
        3,
        3,
        3,
        3,
        1,
        4,
        2,
        3,
        3,
        3,
        1,
        4,
        4,
        1,
        1,
        1,
        4,
        3,
        3,
        2,
        0,
        2,
        4,
        3,
        2,
        0,
        3,
        3,
        0,
        3,
        1,
        1,
        0,
        0,
        0,
        3,
        3,
        0,
        4,
        2,
        2,
        3,
        4,
        0,
        4,
        0,
        3,
        0,
        4,
        4,
        5,
        3,
        4,
        4,
        0,
        3,
        0,
        0,
        1,
        4,
    ),
    (
        1,
        4,
        0,
        4,
        0,
        4,
        0,
        4,
        0,
        3,
        5,
        4,
        4,
        3,
        4,
        3,
        5,
        4,
        3,
        3,
        4,
        3,
        5,
        4,
        4,
        4,
        4,
        3,
        4,
        2,
        4,
        3,
        3,
        1,
        5,
        4,
        3,
        2,
        4,
        5,
        4,
        5,
        5,
        4,
        4,
        5,
        4,
        4,
        0,
        3,
        2,
        2,
        3,
        3,
        0,
        4,
        3,
        1,
        3,
        2,
        1,
        4,
        3,
        3,
        4,
        5,
        0,
        3,
        0,
        2,
        0,
        4,
        5,
        5,
        4,
        5,
        4,
        0,
        4,
        0,
        0,
        5,
        4,
    ),
    (
        0,
        5,
        0,
        5,
        0,
        4,
        0,
        3,
        0,
        4,
        4,
        3,
        4,
        3,
        3,
        3,
        4,
        0,
        4,
        4,
        4,
        3,
        4,
        3,
        4,
        3,
        3,
        1,
        4,
        2,
        4,
        3,
        4,
        0,
        5,
        4,
        1,
        4,
        5,
        4,
        4,
        5,
        3,
        2,
        4,
        3,
        4,
        3,
        2,
        4,
        1,
        3,
        3,
        3,
        2,
        3,
        2,
        0,
        4,
        3,
        3,
        4,
        3,
        3,
        3,
        4,
        0,
        4,
        0,
        3,
        0,
        4,
        5,
        4,
        4,
        4,
        3,
        0,
        4,
        1,
        0,
        1,
        3,
    ),
    (
        0,
        3,
        1,
        4,
        0,
        3,
        0,
        2,
        0,
        3,
        4,
        4,
        3,
        1,
        4,
        2,
        3,
        3,
        4,
        3,
        4,
        3,
        4,
        3,
        4,
        4,
        3,
        2,
        3,
        1,
        5,
        4,
        4,
        1,
        4,
        4,
        3,
        5,
        4,
        4,
        3,
        5,
        5,
        4,
        3,
        4,
        4,
        3,
        1,
        2,
        3,
        1,
        2,
        2,
        0,
        3,
        2,
        0,
        3,
        1,
        0,
        5,
        3,
        3,
        3,
        4,
        3,
        3,
        3,
        3,
        4,
        4,
        4,
        4,
        5,
        4,
        2,
        0,
        3,
        3,
        2,
        4,
        3,
    ),
    (
        0,
        2,
        0,
        3,
        0,
        1,
        0,
        1,
        0,
        0,
        3,
        2,
        0,
        0,
        2,
        0,
        1,
        0,
        2,
        1,
        3,
        3,
        3,
        1,
        2,
        3,
        1,
        0,
        1,
        0,
        4,
        2,
        1,
        1,
        3,
        3,
        0,
        4,
        3,
        3,
        1,
        4,
        3,
        3,
        0,
        3,
        3,
        2,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        2,
        0,
        0,
        0,
        0,
        0,
        4,
        1,
        0,
        2,
        3,
        2,
        2,
        2,
        1,
        3,
        3,
        3,
        4,
        4,
        3,
        2,
        0,
        3,
        1,
        0,
        3,
        3,
    ),
    (
        0,
        4,
        0,
        4,
        0,
        3,
        0,
        3,
        0,
        4,
        4,
        4,
        3,
        3,
        3,
        3,
        3,
        3,
        4,
        3,
        4,
        2,
        4,
        3,
        4,
        3,
        3,
        2,
        4,
        3,
        4,
        5,
        4,
        1,
        4,
        5,
        3,
        5,
        4,
        5,
        3,
        5,
        4,
        0,
        3,
        5,
        5,
        3,
        1,
        3,
        3,
        2,
        2,
        3,
        0,
        3,
        4,
        1,
        3,
        3,
        2,
        4,
        3,
        3,
        3,
        4,
        0,
        4,
        0,
        3,
        0,
        4,
        5,
        4,
        4,
        5,
        3,
        0,
        4,
        1,
        0,
        3,
        4,
    ),
    (
        0,
        2,
        0,
        3,
        0,
        3,
        0,
        0,
        0,
        2,
        2,
        2,
        1,
        0,
        1,
        0,
        0,
        0,
        3,
        0,
        3,
        0,
        3,
        0,
        1,
        3,
        1,
        0,
        3,
        1,
        3,
        3,
        3,
        1,
        3,
        3,
        3,
        0,
        1,
        3,
        1,
        3,
        4,
        0,
        0,
        3,
        1,
        1,
        0,
        3,
        2,
        0,
        0,
        0,
        0,
        1,
        3,
        0,
        1,
        0,
        0,
        3,
        3,
        2,
        0,
        3,
        0,
        0,
        0,
        0,
        0,
        3,
        4,
        3,
        4,
        3,
        3,
        0,
        3,
        0,
        0,
        2,
        3,
    ),
    (
        2,
        3,
        0,
        3,
        0,
        2,
        0,
        1,
        0,
        3,
        3,
        4,
        3,
        1,
        3,
        1,
        1,
        1,
        3,
        1,
        4,
        3,
        4,
        3,
        3,
        3,
        0,
        0,
        3,
        1,
        5,
        4,
        3,
        1,
        4,
        3,
        2,
        5,
        5,
        4,
        4,
        4,
        4,
        3,
        3,
        4,
        4,
        4,
        0,
        2,
        1,
        1,
        3,
        2,
        0,
        1,
        2,
        0,
        0,
        1,
        0,
        4,
        1,
        3,
        3,
        3,
        0,
        3,
        0,
        1,
        0,
        4,
        4,
        4,
        5,
        5,
        3,
        0,
        2,
        0,
        0,
        4,
        4,
    ),
    (
        0,
        2,
        0,
        1,
        0,
        3,
        1,
        3,
        0,
        2,
        3,
        3,
        3,
        0,
        3,
        1,
        0,
        0,
        3,
        0,
        3,
        2,
        3,
        1,
        3,
        2,
        1,
        1,
        0,
        0,
        4,
        2,
        1,
        0,
        2,
        3,
        1,
        4,
        3,
        2,
        0,
        4,
        4,
        3,
        1,
        3,
        1,
        3,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        4,
        1,
        1,
        1,
        2,
        0,
        3,
        0,
        0,
        0,
        3,
        4,
        2,
        4,
        3,
        2,
        0,
        1,
        0,
        0,
        3,
        3,
    ),
    (
        0,
        1,
        0,
        4,
        0,
        5,
        0,
        4,
        0,
        2,
        4,
        4,
        2,
        3,
        3,
        2,
        3,
        3,
        5,
        3,
        3,
        3,
        4,
        3,
        4,
        2,
        3,
        0,
        4,
        3,
        3,
        3,
        4,
        1,
        4,
        3,
        2,
        1,
        5,
        5,
        3,
        4,
        5,
        1,
        3,
        5,
        4,
        2,
        0,
        3,
        3,
        0,
        1,
        3,
        0,
        4,
        2,
        0,
        1,
        3,
        1,
        4,
        3,
        3,
        3,
        3,
        0,
        3,
        0,
        1,
        0,
        3,
        4,
        4,
        4,
        5,
        5,
        0,
        3,
        0,
        1,
        4,
        5,
    ),
    (
        0,
        2,
        0,
        3,
        0,
        3,
        0,
        0,
        0,
        2,
        3,
        1,
        3,
        0,
        4,
        0,
        1,
        1,
        3,
        0,
        3,
        4,
        3,
        2,
        3,
        1,
        0,
        3,
        3,
        2,
        3,
        1,
        3,
        0,
        2,
        3,
        0,
        2,
        1,
        4,
        1,
        2,
        2,
        0,
        0,
        3,
        3,
        0,
        0,
        2,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        2,
        2,
        0,
        3,
        2,
        1,
        3,
        3,
        0,
        2,
        0,
        2,
        0,
        0,
        3,
        3,
        1,
        2,
        4,
        0,
        3,
        0,
        2,
        2,
        3,
    ),
    (
        2,
        4,
        0,
        5,
        0,
        4,
        0,
        4,
        0,
        2,
        4,
        4,
        4,
        3,
        4,
        3,
        3,
        3,
        1,
        2,
        4,
        3,
        4,
        3,
        4,
        4,
        5,
        0,
        3,
        3,
        3,
        3,
        2,
        0,
        4,
        3,
        1,
        4,
        3,
        4,
        1,
        4,
        4,
        3,
        3,
        4,
        4,
        3,
        1,
        2,
        3,
        0,
        4,
        2,
        0,
        4,
        1,
        0,
        3,
        3,
        0,
        4,
        3,
        3,
        3,
        4,
        0,
        4,
        0,
        2,
        0,
        3,
        5,
        3,
        4,
        5,
        2,
        0,
        3,
        0,
        0,
        4,
        5,
    ),
    (
        0,
        3,
        0,
        4,
        0,
        1,
        0,
        1,
        0,
        1,
        3,
        2,
        2,
        1,
        3,
        0,
        3,
        0,
        2,
        0,
        2,
        0,
        3,
        0,
        2,
        0,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        0,
        3,
        1,
        0,
        0,
        0,
        4,
        0,
        3,
        1,
        0,
        2,
        1,
        3,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        4,
        2,
        2,
        3,
        1,
        0,
        3,
        0,
        0,
        0,
        1,
        4,
        4,
        4,
        3,
        0,
        0,
        4,
        0,
        0,
        1,
        4,
    ),
    (
        1,
        4,
        1,
        5,
        0,
        3,
        0,
        3,
        0,
        4,
        5,
        4,
        4,
        3,
        5,
        3,
        3,
        4,
        4,
        3,
        4,
        1,
        3,
        3,
        3,
        3,
        2,
        1,
        4,
        1,
        5,
        4,
        3,
        1,
        4,
        4,
        3,
        5,
        4,
        4,
        3,
        5,
        4,
        3,
        3,
        4,
        4,
        4,
        0,
        3,
        3,
        1,
        2,
        3,
        0,
        3,
        1,
        0,
        3,
        3,
        0,
        5,
        4,
        4,
        4,
        4,
        4,
        4,
        3,
        3,
        5,
        4,
        4,
        3,
        3,
        5,
        4,
        0,
        3,
        2,
        0,
        4,
        4,
    ),
    (
        0,
        2,
        0,
        3,
        0,
        1,
        0,
        0,
        0,
        1,
        3,
        3,
        3,
        2,
        4,
        1,
        3,
        0,
        3,
        1,
        3,
        0,
        2,
        2,
        1,
        1,
        0,
        0,
        2,
        0,
        4,
        3,
        1,
        0,
        4,
        3,
        0,
        4,
        4,
        4,
        1,
        4,
        3,
        1,
        1,
        3,
        3,
        1,
        0,
        2,
        0,
        0,
        1,
        3,
        0,
        0,
        0,
        0,
        2,
        0,
        0,
        4,
        3,
        2,
        4,
        3,
        5,
        4,
        3,
        3,
        3,
        4,
        3,
        3,
        4,
        3,
        3,
        0,
        2,
        1,
        0,
        3,
        3,
    ),
    (
        0,
        2,
        0,
        4,
        0,
        3,
        0,
        2,
        0,
        2,
        5,
        5,
        3,
        4,
        4,
        4,
        4,
        1,
        4,
        3,
        3,
        0,
        4,
        3,
        4,
        3,
        1,
        3,
        3,
        2,
        4,
        3,
        0,
        3,
        4,
        3,
        0,
        3,
        4,
        4,
        2,
        4,
        4,
        0,
        4,
        5,
        3,
        3,
        2,
        2,
        1,
        1,
        1,
        2,
        0,
        1,
        5,
        0,
        3,
        3,
        2,
        4,
        3,
        3,
        3,
        4,
        0,
        3,
        0,
        2,
        0,
        4,
        4,
        3,
        5,
        5,
        0,
        0,
        3,
        0,
        2,
        3,
        3,
    ),
    (
        0,
        3,
        0,
        4,
        0,
        3,
        0,
        1,
        0,
        3,
        4,
        3,
        3,
        1,
        3,
        3,
        3,
        0,
        3,
        1,
        3,
        0,
        4,
        3,
        3,
        1,
        1,
        0,
        3,
        0,
        3,
        3,
        0,
        0,
        4,
        4,
        0,
        1,
        5,
        4,
        3,
        3,
        5,
        0,
        3,
        3,
        4,
        3,
        0,
        2,
        0,
        1,
        1,
        1,
        0,
        1,
        3,
        0,
        1,
        2,
        1,
        3,
        3,
        2,
        3,
        3,
        0,
        3,
        0,
        1,
        0,
        1,
        3,
        3,
        4,
        4,
        1,
        0,
        1,
        2,
        2,
        1,
        3,
    ),
    (
        0,
        1,
        0,
        4,
        0,
        4,
        0,
        3,
        0,
        1,
        3,
        3,
        3,
        2,
        3,
        1,
        1,
        0,
        3,
        0,
        3,
        3,
        4,
        3,
        2,
        4,
        2,
        0,
        1,
        0,
        4,
        3,
        2,
        0,
        4,
        3,
        0,
        5,
        3,
        3,
        2,
        4,
        4,
        4,
        3,
        3,
        3,
        4,
        0,
        1,
        3,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        4,
        2,
        3,
        3,
        3,
        0,
        3,
        0,
        0,
        0,
        4,
        4,
        4,
        5,
        3,
        2,
        0,
        3,
        3,
        0,
        3,
        5,
    ),
    (
        0,
        2,
        0,
        3,
        0,
        0,
        0,
        3,
        0,
        1,
        3,
        0,
        2,
        0,
        0,
        0,
        1,
        0,
        3,
        1,
        1,
        3,
        3,
        0,
        0,
        3,
        0,
        0,
        3,
        0,
        2,
        3,
        1,
        0,
        3,
        1,
        0,
        3,
        3,
        2,
        0,
        4,
        2,
        2,
        0,
        2,
        0,
        0,
        0,
        4,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
        1,
        2,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        1,
        3,
        1,
        2,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        4,
    ),
    (
        0,
        3,
        0,
        3,
        0,
        5,
        0,
        1,
        0,
        2,
        4,
        3,
        1,
        3,
        3,
        2,
        1,
        1,
        5,
        2,
        1,
        0,
        5,
        1,
        2,
        0,
        0,
        0,
        3,
        3,
        2,
        2,
        3,
        2,
        4,
        3,
        0,
        0,
        3,
        3,
        1,
        3,
        3,
        0,
        2,
        5,
        3,
        4,
        0,
        3,
        3,
        0,
        1,
        2,
        0,
        2,
        2,
        0,
        3,
        2,
        0,
        2,
        2,
        3,
        3,
        3,
        0,
        2,
        0,
        1,
        0,
        3,
        4,
        4,
        2,
        5,
        4,
        0,
        3,
        0,
        0,
        3,
        5,
    ),
    (
        0,
        3,
        0,
        3,
        0,
        3,
        0,
        1,
        0,
        3,
        3,
        3,
        3,
        0,
        3,
        0,
        2,
        0,
        2,
        1,
        1,
        0,
        2,
        0,
        1,
        0,
        0,
        0,
        2,
        1,
        0,
        0,
        1,
        0,
        3,
        2,
        0,
        0,
        3,
        3,
        1,
        2,
        3,
        1,
        0,
        3,
        3,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        2,
        0,
        0,
        0,
        0,
        0,
        2,
        3,
        1,
        2,
        3,
        0,
        3,
        0,
        1,
        0,
        3,
        2,
        1,
        0,
        4,
        3,
        0,
        1,
        1,
        0,
        3,
        3,
    ),
    (
        0,
        4,
        0,
        5,
        0,
        3,
        0,
        3,
        0,
        4,
        5,
        5,
        4,
        3,
        5,
        3,
        4,
        3,
        5,
        3,
        3,
        2,
        5,
        3,
        4,
        4,
        4,
        3,
        4,
        3,
        4,
        5,
        5,
        3,
        4,
        4,
        3,
        4,
        4,
        5,
        4,
        4,
        4,
        3,
        4,
        5,
        5,
        4,
        2,
        3,
        4,
        2,
        3,
        4,
        0,
        3,
        3,
        1,
        4,
        3,
        2,
        4,
        3,
        3,
        5,
        5,
        0,
        3,
        0,
        3,
        0,
        5,
        5,
        5,
        5,
        4,
        4,
        0,
        4,
        0,
        1,
        4,
        4,
    ),
    (
        0,
        4,
        0,
        4,
        0,
        3,
        0,
        3,
        0,
        3,
        5,
        4,
        4,
        2,
        3,
        2,
        5,
        1,
        3,
        2,
        5,
        1,
        4,
        2,
        3,
        2,
        3,
        3,
        4,
        3,
        3,
        3,
        3,
        2,
        5,
        4,
        1,
        3,
        3,
        5,
        3,
        4,
        4,
        0,
        4,
        4,
        3,
        1,
        1,
        3,
        1,
        0,
        2,
        3,
        0,
        2,
        3,
        0,
        3,
        0,
        0,
        4,
        3,
        1,
        3,
        4,
        0,
        3,
        0,
        2,
        0,
        4,
        4,
        4,
        3,
        4,
        5,
        0,
        4,
        0,
        0,
        3,
        4,
    ),
    (
        0,
        3,
        0,
        3,
        0,
        3,
        1,
        2,
        0,
        3,
        4,
        4,
        3,
        3,
        3,
        0,
        2,
        2,
        4,
        3,
        3,
        1,
        3,
        3,
        3,
        1,
        1,
        0,
        3,
        1,
        4,
        3,
        2,
        3,
        4,
        4,
        2,
        4,
        4,
        4,
        3,
        4,
        4,
        3,
        2,
        4,
        4,
        3,
        1,
        3,
        3,
        1,
        3,
        3,
        0,
        4,
        1,
        0,
        2,
        2,
        1,
        4,
        3,
        2,
        3,
        3,
        5,
        4,
        3,
        3,
        5,
        4,
        4,
        3,
        3,
        0,
        4,
        0,
        3,
        2,
        2,
        4,
        4,
    ),
    (
        0,
        2,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        2,
        1,
        3,
        0,
        0,
        0,
        0,
        0,
        2,
        0,
        1,
        2,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        3,
        0,
        0,
        1,
        0,
        1,
        1,
        3,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        2,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        2,
        2,
        0,
        3,
        4,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
    ),
    (
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        4,
        0,
        4,
        1,
        4,
        0,
        3,
        0,
        4,
        0,
        3,
        0,
        4,
        0,
        3,
        0,
        3,
        0,
        4,
        1,
        5,
        1,
        4,
        0,
        0,
        3,
        0,
        5,
        0,
        5,
        2,
        0,
        1,
        0,
        0,
        0,
        2,
        1,
        4,
        0,
        1,
        3,
        0,
        0,
        3,
        0,
        0,
        3,
        1,
        1,
        4,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
    ),
    (
        1,
        4,
        0,
        5,
        0,
        3,
        0,
        2,
        0,
        3,
        5,
        4,
        4,
        3,
        4,
        3,
        5,
        3,
        4,
        3,
        3,
        0,
        4,
        3,
        3,
        3,
        3,
        3,
        3,
        2,
        4,
        4,
        3,
        1,
        3,
        4,
        4,
        5,
        4,
        4,
        3,
        4,
        4,
        1,
        3,
        5,
        4,
        3,
        3,
        3,
        1,
        2,
        2,
        3,
        3,
        1,
        3,
        1,
        3,
        3,
        3,
        5,
        3,
        3,
        4,
        5,
        0,
        3,
        0,
        3,
        0,
        3,
        4,
        3,
        4,
        4,
        3,
        0,
        3,
        0,
        2,
        4,
        3,
    ),
    (
        0,
        1,
        0,
        4,
        0,
        0,
        0,
        0,
        0,
        1,
        4,
        0,
        4,
        1,
        4,
        2,
        4,
        0,
        3,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        2,
        0,
        3,
        1,
        1,
        1,
        0,
        3,
        0,
        0,
        0,
        1,
        2,
        1,
        0,
        0,
        1,
        1,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        3,
        0,
        0,
        0,
        0,
        3,
        2,
        0,
        2,
        2,
        0,
        1,
        0,
        0,
        0,
        2,
        3,
        2,
        3,
        3,
        0,
        0,
        0,
        0,
        2,
        1,
        0,
    ),
    (
        0,
        5,
        1,
        5,
        0,
        3,
        0,
        3,
        0,
        5,
        4,
        4,
        5,
        1,
        5,
        3,
        3,
        0,
        4,
        3,
        4,
        3,
        5,
        3,
        4,
        3,
        3,
        2,
        4,
        3,
        4,
        3,
        3,
        0,
        3,
        3,
        1,
        4,
        4,
        3,
        4,
        4,
        4,
        3,
        4,
        5,
        5,
        3,
        2,
        3,
        1,
        1,
        3,
        3,
        1,
        3,
        1,
        1,
        3,
        3,
        2,
        4,
        5,
        3,
        3,
        5,
        0,
        4,
        0,
        3,
        0,
        4,
        4,
        3,
        5,
        3,
        3,
        0,
        3,
        4,
        0,
        4,
        3,
    ),
    (
        0,
        5,
        0,
        5,
        0,
        3,
        0,
        2,
        0,
        4,
        4,
        3,
        5,
        2,
        4,
        3,
        3,
        3,
        4,
        4,
        4,
        3,
        5,
        3,
        5,
        3,
        3,
        1,
        4,
        0,
        4,
        3,
        3,
        0,
        3,
        3,
        0,
        4,
        4,
        4,
        4,
        5,
        4,
        3,
        3,
        5,
        5,
        3,
        2,
        3,
        1,
        2,
        3,
        2,
        0,
        1,
        0,
        0,
        3,
        2,
        2,
        4,
        4,
        3,
        1,
        5,
        0,
        4,
        0,
        3,
        0,
        4,
        3,
        1,
        3,
        2,
        1,
        0,
        3,
        3,
        0,
        3,
        3,
    ),
    (
        0,
        4,
        0,
        5,
        0,
        5,
        0,
        4,
        0,
        4,
        5,
        5,
        5,
        3,
        4,
        3,
        3,
        2,
        5,
        4,
        4,
        3,
        5,
        3,
        5,
        3,
        4,
        0,
        4,
        3,
        4,
        4,
        3,
        2,
        4,
        4,
        3,
        4,
        5,
        4,
        4,
        5,
        5,
        0,
        3,
        5,
        5,
        4,
        1,
        3,
        3,
        2,
        3,
        3,
        1,
        3,
        1,
        0,
        4,
        3,
        1,
        4,
        4,
        3,
        4,
        5,
        0,
        4,
        0,
        2,
        0,
        4,
        3,
        4,
        4,
        3,
        3,
        0,
        4,
        0,
        0,
        5,
        5,
    ),
    (
        0,
        4,
        0,
        4,
        0,
        5,
        0,
        1,
        1,
        3,
        3,
        4,
        4,
        3,
        4,
        1,
        3,
        0,
        5,
        1,
        3,
        0,
        3,
        1,
        3,
        1,
        1,
        0,
        3,
        0,
        3,
        3,
        4,
        0,
        4,
        3,
        0,
        4,
        4,
        4,
        3,
        4,
        4,
        0,
        3,
        5,
        4,
        1,
        0,
        3,
        0,
        0,
        2,
        3,
        0,
        3,
        1,
        0,
        3,
        1,
        0,
        3,
        2,
        1,
        3,
        5,
        0,
        3,
        0,
        1,
        0,
        3,
        2,
        3,
        3,
        4,
        4,
        0,
        2,
        2,
        0,
        4,
        4,
    ),
    (
        2,
        4,
        0,
        5,
        0,
        4,
        0,
        3,
        0,
        4,
        5,
        5,
        4,
        3,
        5,
        3,
        5,
        3,
        5,
        3,
        5,
        2,
        5,
        3,
        4,
        3,
        3,
        4,
        3,
        4,
        5,
        3,
        2,
        1,
        5,
        4,
        3,
        2,
        3,
        4,
        5,
        3,
        4,
        1,
        2,
        5,
        4,
        3,
        0,
        3,
        3,
        0,
        3,
        2,
        0,
        2,
        3,
        0,
        4,
        1,
        0,
        3,
        4,
        3,
        3,
        5,
        0,
        3,
        0,
        1,
        0,
        4,
        5,
        5,
        5,
        4,
        3,
        0,
        4,
        2,
        0,
        3,
        5,
    ),
    (
        0,
        5,
        0,
        4,
        0,
        4,
        0,
        2,
        0,
        5,
        4,
        3,
        4,
        3,
        4,
        3,
        3,
        3,
        4,
        3,
        4,
        2,
        5,
        3,
        5,
        3,
        4,
        1,
        4,
        3,
        4,
        4,
        4,
        0,
        3,
        5,
        0,
        4,
        4,
        4,
        4,
        5,
        3,
        1,
        3,
        4,
        5,
        3,
        3,
        3,
        3,
        3,
        3,
        3,
        0,
        2,
        2,
        0,
        3,
        3,
        2,
        4,
        3,
        3,
        3,
        5,
        3,
        4,
        1,
        3,
        3,
        5,
        3,
        2,
        0,
        0,
        0,
        0,
        4,
        3,
        1,
        3,
        3,
    ),
    (
        0,
        1,
        0,
        3,
        0,
        3,
        0,
        1,
        0,
        1,
        3,
        3,
        3,
        2,
        3,
        3,
        3,
        0,
        3,
        0,
        0,
        0,
        3,
        1,
        3,
        0,
        0,
        0,
        2,
        2,
        2,
        3,
        0,
        0,
        3,
        2,
        0,
        1,
        2,
        4,
        1,
        3,
        3,
        0,
        0,
        3,
        3,
        3,
        0,
        1,
        0,
        0,
        2,
        1,
        0,
        0,
        3,
        0,
        3,
        1,
        0,
        3,
        0,
        0,
        1,
        3,
        0,
        2,
        0,
        1,
        0,
        3,
        3,
        1,
        3,
        3,
        0,
        0,
        1,
        1,
        0,
        3,
        3,
    ),
    (
        0,
        2,
        0,
        3,
        0,
        2,
        1,
        4,
        0,
        2,
        2,
        3,
        1,
        1,
        3,
        1,
        1,
        0,
        2,
        0,
        3,
        1,
        2,
        3,
        1,
        3,
        0,
        0,
        1,
        0,
        4,
        3,
        2,
        3,
        3,
        3,
        1,
        4,
        2,
        3,
        3,
        3,
        3,
        1,
        0,
        3,
        1,
        4,
        0,
        1,
        1,
        0,
        1,
        2,
        0,
        1,
        1,
        0,
        1,
        1,
        0,
        3,
        1,
        3,
        2,
        2,
        0,
        1,
        0,
        0,
        0,
        2,
        3,
        3,
        3,
        1,
        0,
        0,
        0,
        0,
        0,
        2,
        3,
    ),
    (
        0,
        5,
        0,
        4,
        0,
        5,
        0,
        2,
        0,
        4,
        5,
        5,
        3,
        3,
        4,
        3,
        3,
        1,
        5,
        4,
        4,
        2,
        4,
        4,
        4,
        3,
        4,
        2,
        4,
        3,
        5,
        5,
        4,
        3,
        3,
        4,
        3,
        3,
        5,
        5,
        4,
        5,
        5,
        1,
        3,
        4,
        5,
        3,
        1,
        4,
        3,
        1,
        3,
        3,
        0,
        3,
        3,
        1,
        4,
        3,
        1,
        4,
        5,
        3,
        3,
        5,
        0,
        4,
        0,
        3,
        0,
        5,
        3,
        3,
        1,
        4,
        3,
        0,
        4,
        0,
        1,
        5,
        3,
    ),
    (
        0,
        5,
        0,
        5,
        0,
        4,
        0,
        2,
        0,
        4,
        4,
        3,
        4,
        3,
        3,
        3,
        3,
        3,
        5,
        4,
        4,
        4,
        4,
        4,
        4,
        5,
        3,
        3,
        5,
        2,
        4,
        4,
        4,
        3,
        4,
        4,
        3,
        3,
        4,
        4,
        5,
        5,
        3,
        3,
        4,
        3,
        4,
        3,
        3,
        4,
        3,
        3,
        3,
        3,
        1,
        2,
        2,
        1,
        4,
        3,
        3,
        5,
        4,
        4,
        3,
        4,
        0,
        4,
        0,
        3,
        0,
        4,
        4,
        4,
        4,
        4,
        1,
        0,
        4,
        2,
        0,
        2,
        4,
    ),
    (
        0,
        4,
        0,
        4,
        0,
        3,
        0,
        1,
        0,
        3,
        5,
        2,
        3,
        0,
        3,
        0,
        2,
        1,
        4,
        2,
        3,
        3,
        4,
        1,
        4,
        3,
        3,
        2,
        4,
        1,
        3,
        3,
        3,
        0,
        3,
        3,
        0,
        0,
        3,
        3,
        3,
        5,
        3,
        3,
        3,
        3,
        3,
        2,
        0,
        2,
        0,
        0,
        2,
        0,
        0,
        2,
        0,
        0,
        1,
        0,
        0,
        3,
        1,
        2,
        2,
        3,
        0,
        3,
        0,
        2,
        0,
        4,
        4,
        3,
        3,
        4,
        1,
        0,
        3,
        0,
        0,
        2,
        4,
    ),
    (
        0,
        0,
        0,
        4,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        2,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        2,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        3,
        1,
        3,
        0,
        3,
        2,
        0,
        0,
        0,
        1,
        0,
        3,
        2,
        0,
        0,
        2,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        4,
        0,
        2,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
    ),
    (
        0,
        2,
        1,
        3,
        0,
        2,
        0,
        2,
        0,
        3,
        3,
        3,
        3,
        1,
        3,
        1,
        3,
        3,
        3,
        3,
        3,
        3,
        4,
        2,
        2,
        1,
        2,
        1,
        4,
        0,
        4,
        3,
        1,
        3,
        3,
        3,
        2,
        4,
        3,
        5,
        4,
        3,
        3,
        3,
        3,
        3,
        3,
        3,
        0,
        1,
        3,
        0,
        2,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        4,
        2,
        0,
        2,
        3,
        0,
        3,
        3,
        0,
        3,
        3,
        4,
        2,
        3,
        1,
        4,
        0,
        1,
        2,
        0,
        2,
        3,
    ),
    (
        0,
        3,
        0,
        3,
        0,
        1,
        0,
        3,
        0,
        2,
        3,
        3,
        3,
        0,
        3,
        1,
        2,
        0,
        3,
        3,
        2,
        3,
        3,
        2,
        3,
        2,
        3,
        1,
        3,
        0,
        4,
        3,
        2,
        0,
        3,
        3,
        1,
        4,
        3,
        3,
        2,
        3,
        4,
        3,
        1,
        3,
        3,
        1,
        1,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        4,
        1,
        1,
        0,
        3,
        0,
        3,
        1,
        0,
        2,
        3,
        3,
        3,
        3,
        3,
        1,
        0,
        0,
        2,
        0,
        3,
        3,
    ),
    (
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        2,
        0,
        3,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        3,
        0,
        3,
        1,
        0,
        1,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        2,
        0,
        2,
        3,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
    ),
    (
        0,
        2,
        0,
        3,
        1,
        3,
        0,
        3,
        0,
        2,
        3,
        3,
        3,
        1,
        3,
        1,
        3,
        1,
        3,
        1,
        3,
        3,
        3,
        1,
        3,
        0,
        2,
        3,
        1,
        1,
        4,
        3,
        3,
        2,
        3,
        3,
        1,
        2,
        2,
        4,
        1,
        3,
        3,
        0,
        1,
        4,
        2,
        3,
        0,
        1,
        3,
        0,
        3,
        0,
        0,
        1,
        3,
        0,
        2,
        0,
        0,
        3,
        3,
        2,
        1,
        3,
        0,
        3,
        0,
        2,
        0,
        3,
        4,
        4,
        4,
        3,
        1,
        0,
        3,
        0,
        0,
        3,
        3,
    ),
    (
        0,
        2,
        0,
        1,
        0,
        2,
        0,
        0,
        0,
        1,
        3,
        2,
        2,
        1,
        3,
        0,
        1,
        1,
        3,
        0,
        3,
        2,
        3,
        1,
        2,
        0,
        2,
        0,
        1,
        1,
        3,
        3,
        3,
        0,
        3,
        3,
        1,
        1,
        2,
        3,
        2,
        3,
        3,
        1,
        2,
        3,
        2,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        1,
        0,
        0,
        2,
        1,
        2,
        1,
        3,
        0,
        3,
        0,
        0,
        0,
        3,
        4,
        4,
        4,
        3,
        2,
        0,
        2,
        0,
        0,
        2,
        4,
    ),
    (
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
        2,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        3,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
    ),
    (
        0,
        3,
        0,
        3,
        0,
        2,
        0,
        3,
        0,
        3,
        3,
        3,
        2,
        3,
        2,
        2,
        2,
        0,
        3,
        1,
        3,
        3,
        3,
        2,
        3,
        3,
        0,
        0,
        3,
        0,
        3,
        2,
        2,
        0,
        2,
        3,
        1,
        4,
        3,
        4,
        3,
        3,
        2,
        3,
        1,
        5,
        4,
        4,
        0,
        3,
        1,
        2,
        1,
        3,
        0,
        3,
        1,
        1,
        2,
        0,
        2,
        3,
        1,
        3,
        1,
        3,
        0,
        3,
        0,
        1,
        0,
        3,
        3,
        4,
        4,
        2,
        1,
        0,
        2,
        1,
        0,
        2,
        4,
    ),
    (
        0,
        1,
        0,
        3,
        0,
        1,
        0,
        2,
        0,
        1,
        4,
        2,
        5,
        1,
        4,
        0,
        2,
        0,
        2,
        1,
        3,
        1,
        4,
        0,
        2,
        1,
        0,
        0,
        2,
        1,
        4,
        1,
        1,
        0,
        3,
        3,
        0,
        5,
        1,
        3,
        2,
        3,
        3,
        1,
        0,
        3,
        2,
        3,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        4,
        0,
        1,
        0,
        3,
        0,
        2,
        0,
        1,
        0,
        3,
        3,
        3,
        4,
        3,
        3,
        0,
        0,
        0,
        0,
        2,
        3,
    ),
    (
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        3,
    ),
    (
        0,
        1,
        0,
        3,
        0,
        4,
        0,
        3,
        0,
        2,
        4,
        3,
        1,
        0,
        3,
        2,
        2,
        1,
        3,
        1,
        2,
        2,
        3,
        1,
        1,
        1,
        2,
        1,
        3,
        0,
        1,
        2,
        0,
        1,
        3,
        2,
        1,
        3,
        0,
        5,
        5,
        1,
        0,
        0,
        1,
        3,
        2,
        1,
        0,
        3,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        3,
        4,
        0,
        1,
        1,
        1,
        3,
        2,
        0,
        2,
        0,
        1,
        0,
        2,
        3,
        3,
        1,
        2,
        3,
        0,
        1,
        0,
        1,
        0,
        4,
    ),
    (
        0,
        0,
        0,
        1,
        0,
        3,
        0,
        3,
        0,
        2,
        2,
        1,
        0,
        0,
        4,
        0,
        3,
        0,
        3,
        1,
        3,
        0,
        3,
        0,
        3,
        0,
        1,
        0,
        3,
        0,
        3,
        1,
        3,
        0,
        3,
        3,
        0,
        0,
        1,
        2,
        1,
        1,
        1,
        0,
        1,
        2,
        0,
        0,
        0,
        1,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
        2,
        1,
        2,
        0,
        0,
        2,
        0,
        0,
        0,
        0,
        2,
        3,
        3,
        3,
        3,
        0,
        0,
        0,
        0,
        1,
        4,
    ),
    (
        0,
        0,
        0,
        3,
        0,
        3,
        0,
        0,
        0,
        0,
        3,
        1,
        1,
        0,
        3,
        0,
        1,
        0,
        2,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        3,
        0,
        2,
        0,
        2,
        3,
        0,
        0,
        2,
        2,
        3,
        1,
        2,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        0,
        2,
        0,
        0,
        0,
        0,
        2,
        3,
    ),
    (
        2,
        4,
        0,
        5,
        0,
        5,
        0,
        4,
        0,
        3,
        4,
        3,
        3,
        3,
        4,
        3,
        3,
        3,
        4,
        3,
        4,
        4,
        5,
        4,
        5,
        5,
        5,
        2,
        3,
        0,
        5,
        5,
        4,
        1,
        5,
        4,
        3,
        1,
        5,
        4,
        3,
        4,
        4,
        3,
        3,
        4,
        3,
        3,
        0,
        3,
        2,
        0,
        2,
        3,
        0,
        3,
        0,
        0,
        3,
        3,
        0,
        5,
        3,
        2,
        3,
        3,
        0,
        3,
        0,
        3,
        0,
        3,
        4,
        5,
        4,
        5,
        3,
        0,
        4,
        3,
        0,
        3,
        4,
    ),
    (
        0,
        3,
        0,
        3,
        0,
        3,
        0,
        3,
        0,
        3,
        3,
        4,
        3,
        2,
        3,
        2,
        3,
        0,
        4,
        3,
        3,
        3,
        3,
        3,
        3,
        3,
        3,
        0,
        3,
        2,
        4,
        3,
        3,
        1,
        3,
        4,
        3,
        4,
        4,
        4,
        3,
        4,
        4,
        3,
        2,
        4,
        4,
        1,
        0,
        2,
        0,
        0,
        1,
        1,
        0,
        2,
        0,
        0,
        3,
        1,
        0,
        5,
        3,
        2,
        1,
        3,
        0,
        3,
        0,
        1,
        2,
        4,
        3,
        2,
        4,
        3,
        3,
        0,
        3,
        2,
        0,
        4,
        4,
    ),
    (
        0,
        3,
        0,
        3,
        0,
        1,
        0,
        0,
        0,
        1,
        4,
        3,
        3,
        2,
        3,
        1,
        3,
        1,
        4,
        2,
        3,
        2,
        4,
        2,
        3,
        4,
        3,
        0,
        2,
        2,
        3,
        3,
        3,
        0,
        3,
        3,
        3,
        0,
        3,
        4,
        1,
        3,
        3,
        0,
        3,
        4,
        3,
        3,
        0,
        1,
        1,
        0,
        1,
        0,
        0,
        0,
        4,
        0,
        3,
        0,
        0,
        3,
        1,
        2,
        1,
        3,
        0,
        4,
        0,
        1,
        0,
        4,
        3,
        3,
        4,
        3,
        3,
        0,
        2,
        0,
        0,
        3,
        3,
    ),
    (
        0,
        3,
        0,
        4,
        0,
        1,
        0,
        3,
        0,
        3,
        4,
        3,
        3,
        0,
        3,
        3,
        3,
        1,
        3,
        1,
        3,
        3,
        4,
        3,
        3,
        3,
        0,
        0,
        3,
        1,
        5,
        3,
        3,
        1,
        3,
        3,
        2,
        5,
        4,
        3,
        3,
        4,
        5,
        3,
        2,
        5,
        3,
        4,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        2,
        0,
        0,
        1,
        1,
        0,
        4,
        2,
        2,
        1,
        3,
        0,
        3,
        0,
        2,
        0,
        4,
        4,
        3,
        5,
        3,
        2,
        0,
        1,
        1,
        0,
        3,
        4,
    ),
    (
        0,
        5,
        0,
        4,
        0,
        5,
        0,
        2,
        0,
        4,
        4,
        3,
        3,
        2,
        3,
        3,
        3,
        1,
        4,
        3,
        4,
        1,
        5,
        3,
        4,
        3,
        4,
        0,
        4,
        2,
        4,
        3,
        4,
        1,
        5,
        4,
        0,
        4,
        4,
        4,
        4,
        5,
        4,
        1,
        3,
        5,
        4,
        2,
        1,
        4,
        1,
        1,
        3,
        2,
        0,
        3,
        1,
        0,
        3,
        2,
        1,
        4,
        3,
        3,
        3,
        4,
        0,
        4,
        0,
        3,
        0,
        4,
        4,
        4,
        3,
        3,
        3,
        0,
        4,
        2,
        0,
        3,
        4,
    ),
    (
        1,
        4,
        0,
        4,
        0,
        3,
        0,
        1,
        0,
        3,
        3,
        3,
        1,
        1,
        3,
        3,
        2,
        2,
        3,
        3,
        1,
        0,
        3,
        2,
        2,
        1,
        2,
        0,
        3,
        1,
        2,
        1,
        2,
        0,
        3,
        2,
        0,
        2,
        2,
        3,
        3,
        4,
        3,
        0,
        3,
        3,
        1,
        2,
        0,
        1,
        1,
        3,
        1,
        2,
        0,
        0,
        3,
        0,
        1,
        1,
        0,
        3,
        2,
        2,
        3,
        3,
        0,
        3,
        0,
        0,
        0,
        2,
        3,
        3,
        4,
        3,
        3,
        0,
        1,
        0,
        0,
        1,
        4,
    ),
    (
        0,
        4,
        0,
        4,
        0,
        4,
        0,
        0,
        0,
        3,
        4,
        4,
        3,
        1,
        4,
        2,
        3,
        2,
        3,
        3,
        3,
        1,
        4,
        3,
        4,
        0,
        3,
        0,
        4,
        2,
        3,
        3,
        2,
        2,
        5,
        4,
        2,
        1,
        3,
        4,
        3,
        4,
        3,
        1,
        3,
        3,
        4,
        2,
        0,
        2,
        1,
        0,
        3,
        3,
        0,
        0,
        2,
        0,
        3,
        1,
        0,
        4,
        4,
        3,
        4,
        3,
        0,
        4,
        0,
        1,
        0,
        2,
        4,
        4,
        4,
        4,
        4,
        0,
        3,
        2,
        0,
        3,
        3,
    ),
    (
        0,
        0,
        0,
        1,
        0,
        4,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        3,
        2,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        2,
    ),
    (
        0,
        2,
        0,
        3,
        0,
        4,
        0,
        4,
        0,
        1,
        3,
        3,
        3,
        0,
        4,
        0,
        2,
        1,
        2,
        1,
        1,
        1,
        2,
        0,
        3,
        1,
        1,
        0,
        1,
        0,
        3,
        1,
        0,
        0,
        3,
        3,
        2,
        0,
        1,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        2,
        0,
        2,
        2,
        0,
        3,
        1,
        0,
        0,
        1,
        0,
        1,
        1,
        0,
        1,
        2,
        0,
        3,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        3,
        3,
        4,
        3,
        1,
        0,
        1,
        0,
        3,
        0,
        2,
    ),
    (
        0,
        0,
        0,
        3,
        0,
        5,
        0,
        0,
        0,
        0,
        1,
        0,
        2,
        0,
        3,
        1,
        0,
        1,
        3,
        0,
        0,
        0,
        2,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        0,
        4,
        0,
        0,
        0,
        2,
        3,
        0,
        1,
        4,
        1,
        0,
        2,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
        0,
        0,
        3,
        0,
        0,
        0,
        0,
        0,
        3,
    ),
    (
        0,
        2,
        0,
        5,
        0,
        5,
        0,
        1,
        0,
        2,
        4,
        3,
        3,
        2,
        5,
        1,
        3,
        2,
        3,
        3,
        3,
        0,
        4,
        1,
        2,
        0,
        3,
        0,
        4,
        0,
        2,
        2,
        1,
        1,
        5,
        3,
        0,
        0,
        1,
        4,
        2,
        3,
        2,
        0,
        3,
        3,
        3,
        2,
        0,
        2,
        4,
        1,
        1,
        2,
        0,
        1,
        1,
        0,
        3,
        1,
        0,
        1,
        3,
        1,
        2,
        3,
        0,
        2,
        0,
        0,
        0,
        1,
        3,
        5,
        4,
        4,
        4,
        0,
        3,
        0,
        0,
        1,
        3,
    ),
    (
        0,
        4,
        0,
        5,
        0,
        4,
        0,
        4,
        0,
        4,
        5,
        4,
        3,
        3,
        4,
        3,
        3,
        3,
        4,
        3,
        4,
        4,
        5,
        3,
        4,
        5,
        4,
        2,
        4,
        2,
        3,
        4,
        3,
        1,
        4,
        4,
        1,
        3,
        5,
        4,
        4,
        5,
        5,
        4,
        4,
        5,
        5,
        5,
        2,
        3,
        3,
        1,
        4,
        3,
        1,
        3,
        3,
        0,
        3,
        3,
        1,
        4,
        3,
        4,
        4,
        4,
        0,
        3,
        0,
        4,
        0,
        3,
        3,
        4,
        4,
        5,
        0,
        0,
        4,
        3,
        0,
        4,
        5,
    ),
    (
        0,
        4,
        0,
        4,
        0,
        3,
        0,
        3,
        0,
        3,
        4,
        4,
        4,
        3,
        3,
        2,
        4,
        3,
        4,
        3,
        4,
        3,
        5,
        3,
        4,
        3,
        2,
        1,
        4,
        2,
        4,
        4,
        3,
        1,
        3,
        4,
        2,
        4,
        5,
        5,
        3,
        4,
        5,
        4,
        1,
        5,
        4,
        3,
        0,
        3,
        2,
        2,
        3,
        2,
        1,
        3,
        1,
        0,
        3,
        3,
        3,
        5,
        3,
        3,
        3,
        5,
        4,
        4,
        2,
        3,
        3,
        4,
        3,
        3,
        3,
        2,
        1,
        0,
        3,
        2,
        1,
        4,
        3,
    ),
    (
        0,
        4,
        0,
        5,
        0,
        4,
        0,
        3,
        0,
        3,
        5,
        5,
        3,
        2,
        4,
        3,
        4,
        0,
        5,
        4,
        4,
        1,
        4,
        4,
        4,
        3,
        3,
        3,
        4,
        3,
        5,
        5,
        2,
        3,
        3,
        4,
        1,
        2,
        5,
        5,
        3,
        5,
        5,
        2,
        3,
        5,
        5,
        4,
        0,
        3,
        2,
        0,
        3,
        3,
        1,
        1,
        5,
        1,
        4,
        1,
        0,
        4,
        3,
        2,
        3,
        5,
        0,
        4,
        0,
        3,
        0,
        5,
        4,
        3,
        4,
        3,
        0,
        0,
        4,
        1,
        0,
        4,
        4,
    ),
    (
        1,
        3,
        0,
        4,
        0,
        2,
        0,
        2,
        0,
        2,
        5,
        5,
        3,
        3,
        3,
        3,
        3,
        0,
        4,
        2,
        3,
        4,
        4,
        4,
        3,
        4,
        0,
        0,
        3,
        4,
        5,
        4,
        3,
        3,
        3,
        3,
        2,
        5,
        5,
        4,
        5,
        5,
        5,
        4,
        3,
        5,
        5,
        5,
        1,
        3,
        1,
        0,
        1,
        0,
        0,
        3,
        2,
        0,
        4,
        2,
        0,
        5,
        2,
        3,
        2,
        4,
        1,
        3,
        0,
        3,
        0,
        4,
        5,
        4,
        5,
        4,
        3,
        0,
        4,
        2,
        0,
        5,
        4,
    ),
    (
        0,
        3,
        0,
        4,
        0,
        5,
        0,
        3,
        0,
        3,
        4,
        4,
        3,
        2,
        3,
        2,
        3,
        3,
        3,
        3,
        3,
        2,
        4,
        3,
        3,
        2,
        2,
        0,
        3,
        3,
        3,
        3,
        3,
        1,
        3,
        3,
        3,
        0,
        4,
        4,
        3,
        4,
        4,
        1,
        1,
        4,
        4,
        2,
        0,
        3,
        1,
        0,
        1,
        1,
        0,
        4,
        1,
        0,
        2,
        3,
        1,
        3,
        3,
        1,
        3,
        4,
        0,
        3,
        0,
        1,
        0,
        3,
        1,
        3,
        0,
        0,
        1,
        0,
        2,
        0,
        0,
        4,
        4,
    ),
    (
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
    ),
    (
        0,
        3,
        0,
        3,
        0,
        2,
        0,
        3,
        0,
        1,
        5,
        4,
        3,
        3,
        3,
        1,
        4,
        2,
        1,
        2,
        3,
        4,
        4,
        2,
        4,
        4,
        5,
        0,
        3,
        1,
        4,
        3,
        4,
        0,
        4,
        3,
        3,
        3,
        2,
        3,
        2,
        5,
        3,
        4,
        3,
        2,
        2,
        3,
        0,
        0,
        3,
        0,
        2,
        1,
        0,
        1,
        2,
        0,
        0,
        0,
        0,
        2,
        1,
        1,
        3,
        1,
        0,
        2,
        0,
        4,
        0,
        3,
        4,
        4,
        4,
        5,
        2,
        0,
        2,
        0,
        0,
        1,
        3,
    ),
    (
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        1,
        1,
        0,
        0,
        0,
        4,
        2,
        1,
        1,
        0,
        1,
        0,
        3,
        2,
        0,
        0,
        3,
        1,
        1,
        1,
        2,
        2,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        3,
        0,
        1,
        0,
        0,
        0,
        2,
        0,
        0,
        0,
        1,
        4,
        0,
        4,
        2,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
    ),
    (
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        1,
        0,
        0,
        0,
        0,
        3,
        1,
        0,
        0,
        0,
        2,
        0,
        2,
        1,
        0,
        0,
        1,
        2,
        1,
        0,
        1,
        1,
        0,
        0,
        3,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        3,
        1,
        0,
        0,
        0,
        0,
        0,
        1,
        0,
        0,
        2,
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        2,
    ),
    (
        0,
        4,
        0,
        4,
        0,
        4,
        0,
        3,
        0,
        4,
        4,
        3,
        4,
        2,
        4,
        3,
        2,
        0,
        4,
        4,
        4,
        3,
        5,
        3,
        5,
        3,
        3,
        2,
        4,
        2,
        4,
        3,
        4,
        3,
        1,
        4,
        0,
        2,
        3,
        4,
        4,
        4,
        3,
        3,
        3,
        4,
        4,
        4,
        3,
        4,
        1,
        3,
        4,
        3,
        2,
        1,
        2,
        1,
        3,
        3,
        3,
        4,
        4,
        3,
        3,
        5,
        0,
        4,
        0,
        3,
        0,
        4,
        3,
        3,
        3,
        2,
        1,
        0,
        3,
        0,
        0,
        3,
        3,
    ),
    (
        0,
        4,
        0,
        3,
        0,
        3,
        0,
        3,
        0,
        3,
        5,
        5,
        3,
        3,
        3,
        3,
        4,
        3,
        4,
        3,
        3,
        3,
        4,
        4,
        4,
        3,
        3,
        3,
        3,
        4,
        3,
        5,
        3,
        3,
        1,
        3,
        2,
        4,
        5,
        5,
        5,
        5,
        4,
        3,
        4,
        5,
        5,
        3,
        2,
        2,
        3,
        3,
        3,
        3,
        2,
        3,
        3,
        1,
        2,
        3,
        2,
        4,
        3,
        3,
        3,
        4,
        0,
        4,
        0,
        2,
        0,
        4,
        3,
        2,
        2,
        1,
        2,
        0,
        3,
        0,
        0,
        4,
        1,
    ),
)


class JapaneseContextAnalysis(object):
    NUM_OF_CATEGORY = 6
    DONT_KNOW = -1
    ENOUGH_REL_THRESHOLD = 100
    MAX_REL_THRESHOLD = 1000
    MINIMUM_DATA_THRESHOLD = 4

    def __init__(self):
        self._total_rel = None
        self._rel_sample = None
        self._need_to_skip_char_num = None
        self._last_char_order = None
        self._done = None
        self.reset()

    def reset(self):
        self._total_rel = 0
        self._rel_sample = [0] * self.NUM_OF_CATEGORY
        self._need_to_skip_char_num = 0
        self._last_char_order = -1
        self._done = False

    def feed(self, byte_str, num_bytes):
        if self._done:
            return
        i = self._need_to_skip_char_num
        while i < num_bytes:
            order, char_len = self.get_order(byte_str[i : i + 2])
            i += char_len
            if i > num_bytes:
                self._need_to_skip_char_num = i - num_bytes
                self._last_char_order = -1
            else:
                if order != -1:
                    if self._last_char_order != -1:
                        self._total_rel += 1
                        if self._total_rel > self.MAX_REL_THRESHOLD:
                            self._done = True
                            break
                        self._rel_sample[
                            jp2CharContext[self._last_char_order][order]
                        ] += 1
                self._last_char_order = order

    def got_enough_data(self):
        return self._total_rel > self.ENOUGH_REL_THRESHOLD

    def get_confidence(self):
        if self._total_rel > self.MINIMUM_DATA_THRESHOLD:
            return (self._total_rel - self._rel_sample[0]) / self._total_rel
        else:
            return self.DONT_KNOW

    def get_order(self, byte_str):
        return (-1, 1)


class SJISContextAnalysis(JapaneseContextAnalysis):
    def __init__(self):
        super(SJISContextAnalysis, self).__init__()
        self._charset_name = "SHIFT_JIS"

    @property
    def charset_name(self):
        return self._charset_name

    def get_order(self, byte_str):
        if not byte_str:
            return (-1, 1)
        else:
            first_char = byte_str[0]
            if not 129 <= first_char <= 159:
                pass
            char_len = 224 <= first_char <= 252 and 2
            if not first_char == 135:
                if 250 <= first_char <= 252:
                    self._charset_name = "CP932"
                else:
                    char_len = 1
                if len(byte_str) > 1:
                    second_char = byte_str[1]
                    if first_char == 202:
                        pass
                    if 159 <= second_char <= 241:
                        return (second_char - 159, char_len)
            return (-1, char_len)


class EUCJPContextAnalysis(JapaneseContextAnalysis):
    def get_order(self, byte_str):
        if not byte_str:
            return (-1, 1)
        else:
            first_char = byte_str[0]
            if not first_char == 142:
                pass
            if 161 <= first_char <= 254:
                char_len = 2
            else:
                if first_char == 143:
                    char_len = 3
                else:
                    char_len = 1
                if len(byte_str) > 1:
                    second_char = byte_str[1]
                    if first_char == 164:
                        pass
                    if 161 <= second_char <= 243:
                        return (second_char - 161, char_len)
            return (-1, char_len)
